JavaScript
part 17/19 Β· 71.2 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
return false;
}
Par ailleurs, la mΓ©thode Object.create introduite dans ECMAScript 5
permet d'Γ©viter d'utiliser directement les fonctions constructeurs,
leurs propriΓ©tΓ©s prototype et l'opΓ©rateur new, pour ne travailler
qu'avec des objets. L'utilisation de cette mΓ©thode simplifie grandement
la complexitΓ© du code et est donc recommandΓ©e. La mΓ©thode Object.create
est dΓ©finie par
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
L'exemple prΓ©cΓ©dent peut alors Γͺtre réécrit
const MonObjet = {
function initialiser() {
this.maPropriete1 = 3;
}
}
const monInstance = Object.create(MonObjet);
monInstance.initialiser();
alert(monInstance.maPropriete1); // affiche 3
MonObjet.maPropriete2 = 5;
alert(monInstance.maPropriete2); // affiche 5
SΓ©paration des instructions
En C, chaque instruction se termine par un point-virgule. Cette pratique
a fait du point-virgule une obligation dans de nombreux langages
inspirΓ©s de la syntaxe du C.
JavaScript est plus souple, permettant Γ une fin de ligne de marquer
implicitement la fin d'une instruction. Le but est de faciliter l'usage
du langage aux personnes inexpΓ©rimentΓ©es en programmation informatique.
Mais cette souplesse introduit des effets inattenduscite-ref-32[32] :
return
true;
Le parseur comprend cela comme deux instructions :
return;
true;
Les expressions de fonctions immΓ©diatement invoquΓ©es lorsque le
programmeur s'appuie sur les fins d'instruction implicites rencontrent
également ce genre de problème avec l'usage des parenthèses :
maVariable1 = maVariable2 + maVariable3
(function () {
// code
})()
est traitΓ© comme
maVariable1 = maVariable2 + maVariable3(function () { /* code */ })();
Les ouvrages de programmation avancΓ©s en JavaScript mettent en garde
contre les effets inattendus de la dΓ©duction automatique de fin
d'instruction et conseillent d'Γ©crire un point-virgule Γ la fin de
chaque instruction, ce qui n'empΓͺche pas les surprises lorsqu'on oublie
le point-virgule, d'autant plus quand la compression du code impose le
retrait des retours chariot.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ